/*
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
*
* SPDX-License-Identifier: BSD-3-Clause
*/

/**********************************************************************************************************************
 * File Name    : global_timer_iodefine.h
 * Version      : 1.00
 * Description  : IO define file for global_timer.
 *********************************************************************************************************************/

/* =========================================================================================================================== */
/* ================                              Device Specific Cluster Section                              ================ */
/* =========================================================================================================================== */

/* =========================================================================================================================== */
/* ================                            Device Specific Peripheral Section                             ================ */
/* =========================================================================================================================== */

#ifndef GLOBAL_TIMER_IODEFINE_H
#define GLOBAL_TIMER_IODEFINE_H

typedef struct
{
    __IOM uint32_t GTCR_L;
    __IOM uint32_t GTCR_H;
    union
    {
        __IOM uint32_t GTCTLR;
        struct
        {
            __IOM uint32_t TE        : 1;
            __IOM uint32_t CE        : 1;
            __IOM uint32_t IRQE      : 1;
            __IOM uint32_t AI        : 1;
            uint32_t                 : 4;
            __IOM uint32_t Prescaler : 8;
            uint32_t                 : 16;
        } GTCTLR_b;
    };
    union
    {
        __IOM uint32_t GTISR;
        struct
        {
            __IOM uint32_t EF : 1;
            uint32_t          : 31;
        } GTISR_b;
    };
    __IOM uint32_t CVR_L;
    __IOM uint32_t CVR_H;
    __IOM uint32_t AUTO_INCR;
} R_GLOBAL_TIMER_Type;

/* =========================================================================================================================== */
/* ================                          Device Specific Peripheral Address Map                           ================ */
/* =========================================================================================================================== */

#define R_GLOBAL_TIMER_BASE    0x12C10200

/* =========================================================================================================================== */
/* ================                                  Peripheral declaration                                   ================ */
/* =========================================================================================================================== */

#define R_GLOBAL_TIMER    ((R_GLOBAL_TIMER_Type *) R_GLOBAL_TIMER_BASE)

#endif
